package com.bt.lms.ui.page.common;

import com.bt.lms.entity.page.Page;
import com.bt.lms.main.BotLmsApp;
import com.bt.lms.ui.page.sys.utils.MyLabel;
import com.bt.lms.ui.page.sys.utils.MyVBox;
import com.bt.lms.ui.page.sys.style.BoxStyle;
import com.bt.lms.ui.page.sys.utils.NetWorkUtils;
import com.bt.lms.ui.vo.PageSkipInfo;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Node;
import javafx.scene.control.Accordion;
import javafx.scene.control.TitledPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;

/**
 * 系统界面
 */
public class PageSys extends HBox {
 

    /**
     * 构建系统界面
     */
    public PageSys(){

        //布局
        Insets insets = new Insets(10);
        this.setPadding(insets);
        this.setSpacing(10);
        this.setPrefWidth(1480);

        // 内容部分
        contentHBoxInit();
    }

    /**
     * 内容部分初始化
     */
    private void contentHBoxInit() {

        //组件(公共部分)
        MyVBox menuVBox = new MyVBox();
        menuVBox.setPrefWidth(200);
        menuVBox.setMinHeight(BotLmsApp.HEIGHT);
        menuVBoxInit(menuVBox);
        //放入容器
        ObservableList<Node> menuChildren = this.getChildren();
        menuChildren.add(menuVBox);
        //背景色
        BoxStyle.mainBackdrop(menuVBox);

        //私人部分(默认用户列表界面)
        //界面跳转数据
        PageSkipInfo pageSkipInfo = new PageSkipInfo();
        pageSkipInfo.setPane(this);
        pageSkipInfo.setIndex(1);
        NetWorkUtils.reqUserPagingPage(pageSkipInfo,this);

    }

    /**
     * 菜单部分初始化
     * @param menuVBox 菜单盒子
     */
    private void menuVBoxInit(MyVBox menuVBox) {

        //组件（选项所在容器）
        VBox sysVBox = new VBox();
        //容器初始化
        sysVBoxInit(sysVBox);
        //背景色
        BoxStyle.mainBackdrop(sysVBox);

        //菜单组件（手风琴）
        TitledPane titledPane = new TitledPane("系统管理",sysVBox);
        titledPane.setExpanded(true);//默认展开
        titledPane.setAnimated(false);//展开动画禁止

        Accordion accordion = new Accordion();
        accordion.setExpandedPane(titledPane);
        accordion.getPanes().add(titledPane);

        //添加组件
        ObservableList<Node> children = menuVBox.getChildren();
        children.addAll(accordion);
    }

    /**
     * 系统管理选项初始化
     * @param sysVBox 系统选项盒子
     */
    private void sysVBoxInit(VBox sysVBox) {

        //组件数据组件统一默认高
        int height = 40;
        //界面跳转对象
        PageSkipInfo pageSkipInfo = new PageSkipInfo();
        pageSkipInfo.setPane(this);
        pageSkipInfo.setIndex(1);

        //布局
        sysVBox.setSpacing(2);

        //组件（后台用户管理）
        MyLabel userLab = new MyLabel("后台用户管理");
        userLab.setPrefHeight(height);
        //事件
        userLab.setOnMouseClicked(event -> NetWorkUtils.reqUserPagingPage(pageSkipInfo,new Page<>()));
        //组件添加
        sysVBox.getChildren().add(userLab);

        //组件（角色权限管理）
        MyLabel roleLab = new MyLabel("角色权限管理");
        roleLab.setPrefHeight(height);
        //事件
        roleLab.setOnMouseClicked(event -> NetWorkUtils.reqRolePagingPage(pageSkipInfo,new Page<>()));
        //组件添加
        sysVBox.getChildren().add(roleLab);

        //组件（学习中心管理）
        MyLabel studyCen = new MyLabel("学习中心管理");
        studyCen.setPrefHeight(height);
        sysVBox.getChildren().add(studyCen);
        //事件
        studyCen.setOnMouseClicked(event -> NetWorkUtils.reqStudyCenPagingPage(pageSkipInfo,new Page<>()));

        //组件（学科/专业管理）
        MyLabel majorLab = new MyLabel("学科/专业管理");
        majorLab.setPrefHeight(height);
        sysVBox.getChildren().add(majorLab);
        //事件
        majorLab.setOnMouseClicked(event -> NetWorkUtils.reqMajorPagingPage(pageSkipInfo,new Page<>()));

    }

}
